package org.quincy.mqtt.test.processor;

import org.quincy.mqtt.test.comm.Terminal;
import org.quincy.mqtt.test.vo.LoginResultMessage;
import org.quincy.rock.comm.MessageSender;
import org.quincy.rock.comm.parser.NioCasingResultMessage;
import org.quincy.rock.core.util.CoreUtil;

/**
 * <b>登录结果处理器。</b>
 * <p><b>详细说明：</b></p>
 * <!-- 在此添加详细说明 -->
 * 无。
 * <p><b>修改列表：</b></p>
 * <table width="100%" cellSpacing=1 cellPadding=3 border=1>
 * <tr bgcolor="#CCCCFF"><td>序号</td><td>作者</td><td>修改日期</td><td>修改内容</td></tr>
 * <!-- 在此添加修改列表，参考第一行内容 -->
 * <tr><td>1</td><td>wks</td><td>2018年6月21日 下午11:05:52</td><td>建立类型</td></tr>
 * 
 * </table>
 * @version 1.0
 * @author wks
 * @since 1.0
 */
public class MessageProcessor20001 extends MessageProcessor<NioCasingResultMessage<LoginResultMessage>> {

	/** 
	 * process。
	 * @see org.quincy.mqtt.test.processor.MessageProcessor#process(org.quincy.rock.comm.MessageSender, org.quincy.mqtt.test.comm.Terminal, java.lang.Object, java.lang.Object)
	 */
	@Override
	protected void process(MessageSender<Integer> sender, Terminal terminal, Object msgId,
			NioCasingResultMessage<LoginResultMessage> content) {
		boolean ok = content.getResult() == 1;
		LoginResultMessage lrm = content.getData();
		StringBuilder sb = new StringBuilder();
		sb.append("(");
		sb.append(msgId);
		sb.append(")");
		sb.append(ok ? "登陆成功:" : "登陆失败:");
		sb.append(lrm.getServerNo());
		getAddToList().addToReceiveList(CoreUtil.toString(terminal), sb.toString());
		if (!ok)
			sender.offlineTerminal(terminal);
	}
}
